Crate log2

source ·
Expand description

§log2

log2 is an out-of-the-box logging library for Rust. It writes to stdout or to file asynchronousely, and automatically rotates based on file size.

§Usage

§Add dependency

cargo add log2

§Log to stdout

Simple to start.

use log2::*;

fn main() {
let _log2 = log2::start();

trace!("send order request to server");
debug!("receive order response");
info!("order was executed");
warn!("network speed is slow");
error!("network connection was broken");
}

Output

Screnshot of log2 output

Show module path, and set log level.

use log2::*;

fn main() {
let _log2 = log2::stdout()
.module(true)
.level("info")
.start();

trace!("send order request to server");
debug!("receive order response");
info!("order was executed");
warn!("network speed is slow");
error!("network connection was broken");
}

§Log to file

log2 with default file size 100MB, max file count 10, you can change as you like. Note the _log2 will stop the log2 instance when it is out of the scope

use log2::*;

fn main() {
// configurable way:
// - log to file, file size: 100 MB, rotate: 20
// - tee to stdout
// - show module path
let _log2 = log2::open("log.txt")
.size(100*1024*1024)
.rotate(20)
.tee(true)
.module(true)
.start();

// out-of-the-box way
// let _log2 = log2::open("log.txt").start();

trace!("send order request to server");
debug!("receive order response");
info!("order was executed");
warn!("network speed is slow");
error!("network connection was broken");
}

Output files

log.txt
log.1.txt
log.2.txt
log.3.txt
log.4.txt
log.5.txt
log.6.txt
log.7.txt
log.8.txt
log.9.txt

Macros§

  • log macros Logs a message at the debug level.
  • log macros Logs a message at the error level.
  • log macros Logs a message at the info level.
  • log macros Logs a message at the trace level.
  • log macros Logs a message at the warn level.

Structs§

Functions§

  • log to file
  • set the log level, the input can be both enum or name
  • start the log2 instance by default
  • create a log2 instance to stdout

Type Aliases§